home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / tools / prtfolio / gate40.bas < prev    next >
Encoding:
BASIC Source File  |  1994-09-22  |  4.9 KB  |  186 lines

  1. REM/Gate40.100/Honohan/11-Aug-90
  2. REM modified for PBASIC by BJ Gleason
  3.  
  4. NUMFMT="% g ":SSIZE=80
  5. CLS
  6. P$="GATE! Global Air Time Estimator    "
  7. FOR K=1TO 32:PRINT MID$(P$,K,1);
  8. FOR D=1TO 5:NEXT:NEXT:PRINT
  9. Z$="+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"
  10. FOR K=1TO 31:PRINT MID$(Z$,K,1);
  11. FOR D=1TO 5:NEXT:NEXT:PRINT
  12. rem P=3.14159265358979
  13. J=Pi/180:Q=180/Pi:E=24880
  14. I=43:DIM X$(I),n$(i)
  15. FOR K=1TO I
  16. READ X$(K),n$(K):PRINT LEFT$(X$(K),3)+" ";
  17. NEXT
  18. 114PRINT:A$="1st":B$="2nd"
  19. PRINT"<c>ITY ";
  20. PRINT"<d>EGREES ";
  21. PRINT"<n>UMERIC ";
  22. PRINT"<q>UIT ?";
  23. 1 k$=inkey$:if k$="" then goto 1 : rem INPUT K$
  24. if asc(k$)=27 then if isrun then run "menu" else end
  25. IF K$="c"THEN GOSUB 200:if a$=b$ then 114 else GOTO 130
  26. IF K$="d"THEN GOSUB 182:GOTO 130
  27. IF K$="q"THEN if isrun then run "menu" else end
  28. if k$<>"n"then 114
  29. CLS
  30. PRINT"nUMERIC"
  31. PRINT
  32. INPUT">1st Lat";W
  33. INPUT">    Lon";X:XX=X
  34. INPUT">2nd Lat";Y
  35. INPUT">    Lon";Z:ZZ=Z
  36. 130A=SIN(W*J)*SIN(Y*J)
  37. A=A+COS(W*J)*COS(Y*J)*COS((Z-X)*J)
  38. IF(-A*A+1)<=0THEN d=180 else D=(-ATN(A/SQR(-A*A+1))+(Pi/2))*Q
  39. N=D*(10800/Pi)*J:M=D*(.5*(E/Pi))*J
  40. B=SIN(Y*J)-SIN(W*J)*COS(D*J)
  41. IF(SIN(D*J)*COS(W*J))=0THEN C=0:GOTO 141
  42. B=B/(SIN(D*J)*COS(W*J))
  43. IF(-B*B+1)<=0THEN C=0:GOTO 141
  44. C=(-ATN(B/SQR(-B*B+1))+(Pi/2))*Q
  45. IF SIN((Z-X)*J)>=0THEN C=360-C
  46. 141C$="^":A=.603602:B=.001821
  47. IF C>000THEN C$="n"
  48. IF C>045THEN C$="e"
  49. IF C>135THEN C$="s"
  50. IF C>225THEN C$="w"
  51. IF C>315THEN C$="n"
  52. IF C$="e"THEN A=.625789:B=.001758
  53. IF C$="s"THEN A=.668288:B=.001757
  54. IF C$="w"THEN A=.598434:B=.001955
  55. IF M<0150THEN A=.324867:B=.003736
  56. T=A+B*M:S=M/T
  57. O=INT((XX+7.5)/15)-INT((ZZ+7.5)/15)
  58. DA=1:LV=9:AR=LV+T+O
  59. 154IF AR>24THEN AR=AR-24:DA=DA+1:GOTO 154
  60. 155IF AR<00THEN AR=AR+24:DA=DA-1:GOTO 155
  61. HR=INT(AR):MN=INT((AR-HR)*60+.5)
  62. W$="montuewedthufrisatsun"
  63. FOR WD=1TO 7
  64. IF WD=DA THEN D$=MID$(W$,WD*3-2,3)
  65. NEXT
  66. L$=MID$(STR$(HR),2)
  67. R$=MID$(STR$(MN),2)
  68. IF LEN(L$)<2THEN L$="0"+L$
  69. IF LEN(R$)<2THEN R$="0"+R$
  70. T$=L$+":"+R$
  71. W=INT(W*10+.5)/10
  72. X=INT(X*10+.5)/10
  73. Y=INT(Y*10+.5)/10
  74. Z=INT(Z*10+.5)/10
  75. T=INT(T*10+.5)/10
  76. N=INT(N+.5)
  77. M=INT(M+.5)
  78. C=INT(C+.5)
  79. S=INT(S+.5)
  80. CLS
  81. PRINT BJA$;" to ";BJB$
  82. PRINT A$;W;X,b$;Y;Z
  83. PRINT"  ";N;"Nm";M;"Sm"
  84. PRINT"  ";C;C$;" @";O;"TZs"
  85. PRINT"  ";T;"Hrs @";S;"Mph"
  86. PRINT"   LV mon 09:00 AR ";D$;" ";T$
  87. GOTO 114
  88. 182CLS
  89. PRINT"dEGREES @ DDDmmSSx"
  90. PRINT
  91. INPUT">1st Lat";X$:GOSUB 190:W=V
  92. INPUT">    Lon";X$:GOSUB 190:X=V:XX=X
  93. INPUT">2nd Lat";X$:GOSUB 190:Y=V
  94. INPUT">    Lon";X$:GOSUB 190:Z=V:ZZ=Z
  95. RETURN
  96. 190IF LEN(X$)<8THEN X$="0"+X$:GOTO 190
  97. V$=LEFT$(X$,LEN(X$)-5)
  98. V=VAL(V$)
  99. V$=MID$(X$,LEN(X$)-4,2)
  100. V=V+VAL(V$)/60
  101. V$=MID$(X$,LEN(X$)-2,2)
  102. V=V+VAL(V$)/3600
  103. IF RIGHT$(X$,1)="s"THEN V=-V
  104. IF RIGHT$(X$,1)="e"THEN V=-V
  105. RETURN
  106. 200X$="***"
  107. CLS
  108. FOR K=1TO I
  109. PRINT LEFT$(X$(K),3)+" ";
  110. NEXT:PRINT
  111. INPUT">1st cITY";X$
  112. GOSUB 225:GOSUB 214
  113. BJA$=BJC$
  114. A$=X$:W=L:X=R:XX=X
  115. IF MID$(X$(K),4,1)="-"THEN XX=X-15
  116. INPUT">2nd cITY";X$
  117. GOSUB 225:GOSUB 214
  118. BJB$=BJC$
  119. B$=X$:Y=L:Z=R:ZZ=Z
  120. IF MID$(X$(K),4,1)="-"THEN ZZ=Z-15
  121. RETURN
  122. 214L$=MID$(X$(K),5,2)
  123. BJC$=N$(k)
  124. L=VAL(L$)
  125. L$=MID$(X$(K),7,2)
  126. L=L+VAL(L$)/60
  127. IF MID$(X$(K),9,1)="s"THEN L=-L
  128. R$=MID$(X$(K),10,3)
  129. R=VAL(R$)
  130. R$=MID$(X$(K),13,2)
  131. R=R+VAL(R$)/60
  132. IF MID$(X$(K),15,1)="e"THEN R=-R
  133. RETURN
  134. 225FOR K=1TO I
  135. IF X$=LEFT$(X$(K),3)THEN RETURN
  136. NEXT
  137. X$="***":K=1:RETURN
  138. REM
  139. REM you can add your own airport here
  140. REM 3 Letter airport name, + or -
  141. REM followed by long/lat
  142. REM
  143. 229DATA"***+0000n00000w","Nowhere"
  144. 230DATA"ams-5223n00454e","Amsterdam"
  145. 231DATA"ath+3758n02343e","Athens"
  146. 232DATA"auc+3652s17446e","Auckland"
  147. 233DATA"bog+0434n07400w","Bogota"
  148. 234DATA"bue-3430s05820w","Buenos Aires"
  149. 235DATA"cai+3030n03115e","Cairo"
  150. 236DATA"chi+4152n08738w","Chicago"
  151. 237DATA"cop+5541n01234e","Copenhagen"
  152. 238DATA"fra+5007n00840e","Frankfurt"
  153. 239DATA"hel+6015n02503e","Hesinki"
  154. 240DATA"hkg+2211n11414e","Hong Kong"
  155. 241DATA"hnl-2120n15800w","Honolulu"
  156. 242DATA"hou+2945n09522w","Houston"
  157. 243DATA"joh+2610s02808e","Johannesburg"
  158. 244DATA"lax+3403n11814w","Los Angles"
  159. 245DATA"lim+1200s07700w","Lima"
  160. 246DATA"lis-3842n00910w","Lisbon"
  161. 247DATA"lon+5130n00005w","London"
  162. 248DATA"mad-4025n00345w","Madrid"
  163. 249DATA"mex-1924n09909w","Mexico City"
  164. 250DATA"mia+2547n08017w","Miami"
  165. 251DATA"mos+5545n03735e","Moscow"
  166. 2511data"npl+9000n00000e","North Pole"
  167. 252DATA"nyc+4045n07400w","New York City"
  168. 253DATA"osl+5953n01052e","Oslo"
  169. 254DATA"par-4852n00220e","Paris"
  170. 255DATA"pek+3950n11620e","Peking"
  171. 256DATA"pra+5005n01422e","Prague"
  172. 257DATA"rey-6410n02200w","Reykjavik"
  173. 258DATA"rio+2300s04312w","Rio"
  174. 259DATA"rom+4154n01230e","Rome"
  175. 260DATA"sfo+3747n12225w","San Fransico"
  176. 2601data"spl+9000s00000w","South Pole"
  177. 261DATA"sto+5920n01893e","Stockholm"
  178. 262DATA"syd+3353s15110e","Sydney"
  179. 263DATA"tah+1737s14927w","Thailand"
  180. 264DATA"tel+3203n03446e","Tel Aviv"
  181. 265DATA"tok+3542n13946e","Tokyo"
  182. 266DATA"vie+4820n01622e","Vienna"
  183. 267DATA"war+5213n02100e","Warsaw"
  184. 2671DATA"yrb+7444n09500w","Resolute Bay"
  185. 268DATA"zur+4722n00832e","Zurich"
  186. ə